Distinguished Professor, Emeritus
Ph.D., UC Berkeley, 1980, Ph.D. advisor: Richard Karp
My primary interests
involve the efficiency of algorithms, particularly
for problems in combinatorial optimization and graph theory.
These algorithms have been applied to study data
security, stable matching, network flow, matroid optimization,
string/pattern matching problems, molecular sequence analysis, and optimization problems
in population-scale genomics. Currently, I am
focused on string and combinatorial problems that arise in
computational biology and bioinformatics. I served as chair of the computer science
department at UCD from July 2000 until August 2004, and was the
founding Editor-in-Chief of
The IEEE/ACM Transactions of Computational Biology and Bioinformatics until January 2009.
Introduction to The IEEE/ACM Transactions of Computational Biology and Bioinformatics
I am a Fellow of the ACM, IEEE, and ISCB.
For a longer
biosketch, see short biosketch 2019
Office: 2125 Kemper Hall (Engineering II)
Phone: (530) 752-7131
E-mail: gusfield@cs.ucdavis.edu
Please Note: the correct URL for this page is: http://csiflabs.cs.ucdavis.edu/~gusfield NOT : http://csiflabs.cs.ucdavis.edu/gusfield (note the missing ~) Please bookmark this page for later reference.
Soon to be published book:
Previously published book:
Supplimentary Material for the Integer Programming Book:
The Integer Programming book is accompanied by about fifty programs written in Python and Perl that generate concrete Integer Linear
Programming formulations
for many of the biological problems in the book. The following zip file contains those programs, along with data and
a catalog of the programs and how to use the programs. Additionally, although no knowledge of computer programming is
needed to use the programs, or to read the book, for the reader who wants to understand how the Python programs work, I have
written a short tutorial on Python, specifically designed around two of the Python programs that accompany the
book.
Programs, Data, Catalog, and Python Tutorial (zip file) accompaning the book: Integer Linear Programming in Computational and Systems Biology: An entry-level text and course
If you just want the Python tutorial:
Short Python tutorial accompaning the book: Integer Linear Programming in Computational and Systems Biology: An entry-level text and course
Zoom Recording of Guest Lecture in Math 280, March 2, 2021 - Bell's Theorem, EPR, Locality, Realism and all that
Papers distributed for my lecture on Bell's theorem(s), March 2, 2021
Slides from the Gurobi Webinar
From Integer Programming to SAT-Solving in Computational Biology
Webinar Recording on Integer Linear Programming in Computational Biology - Focus on RNA Folding
Slides from the Gurobi Webinar
Slides from the tutorial I gave on Integer Linear Programming in Computational and Systems Biology, based on the book:
Integer Linear Programming in Computational Biology - New course for Fall, 2017
Hot Hands, Streaks and Coin-flips: Numerical
Nonsense in the New York Times Godel for Goldilocks -- A variant of Godel's First Incompleteness Theorem Godel's first incompleteness theorem, Lecture Video 1
About one hour and 15 minutes.
Godel's first incompleteness theorem, Lecture Video 2
About 25 minutes.
The Fast Fourier Transform (FFT) Graduate Algorithms Course Lecture Videos: Undergraduate Algorithms Course Lecture Videos: Fall 2009 - The website for the class ECS 224, String Algorithms and Computational Biology
Algorithms, is www.cs.ucdavis.edu/~gusfield/cs224f09
Since Spring 2000 I have been teaching an undergraduate course CS 124 Theory and
Practice of Bioinformatics. See
The Expanded Syllabus for CS124 for more information.
Bioinformatics Course Lecture Videos:
Some Errata for Algorithms on Strings, Trees, and Sequences: Computer Science
and Computational Biology can be found in
Errata.
Bell's Theorem(s), EPR, Locality, Realism and all that - in Quick-Time format
March 3, this doesn't seem to play when clicked on - but it does download if (on my mac) I specify that
it should open in a different tab. Then, the downloaded movie plays. I hope I can make it just start playing without downloading first. I am working on it.
Slides from Bell's Theorem(s) Lecture, March 2, 2021
quantum-enigma1,2
quantum-enigma3
quantum-enigma4
quantum-enigma5
quantum-enigma6
quantum-enigma7
Mermin Moon and Reality Paper
Bell's 1964 paper
Bell's 1966 paper
My draft writeup of Zeilinger's Bell Theorem proof
Gurobi webinar I gave on Integer Linear Programming
in Computational Biology, March 2020
Slides from the Gurobi Webinar on
Integer Linear Programming in Computational Biology
Plenary Keynote Talk WABI 2020, September 9, 2020
Gurobi webinar I gave on Integer Linear Programming
in Computational Biology, March 2020
Slides from the Gurobi Webinar on
Integer Linear Programming in Computational Biology
Two hour tutorial given September 7, 2019 at the ACM BCB conference in Niagara Falls, NY
This is written for the first lecture of an undergraduate course on the Theory of Computation. It only requires
knowing what integers, functions, and computer programs are. It is a no frills, no paradox, no analogy, no weird logic notation, to-the-point, proof.
First Lecture on FFT
22 Minutes. Introduction to the topic via the problem of evaluating a polynomial at n chosen points
in O(n log n) time; introduction to a divide-and-conquer approach; the first part of the recursion
needed for the solution.
Second Lecture on FFT
57 Minutes. The video here skips a review that was part of the second lecture, and begins where the first lecture ends.
It derives the second part of the recusion needed for the divide-and-conquer solution,
introducing the use of complex numbers defined on the unit circle.
Third Lecture on FFT
1 hour and 41 minutes.
Summary of the whole divide-and-conquer algorithm; naming of the Discrete Fourier Transform (DFT);
some standard terminology;
explicit connection of the divide-and-conquer algorithm to the Fast Fourier Transform;
Introduction of the problem of finding the product of two polynomials; recasting the DFT
as a matrix-by-vector multiplication; introduction to the inverse DFT and inverse FFT.
Fourth Lecture on FFT
40 Minutes. The punch line; Solving the inverse problem by FFT; spoiler alert -- the inverse FFT algorithm is
a fantasy - its the same as the forward algorithm, but you have to permute the output;
summary of the solution using the FFT three times; convolution; class dismissed.
These are lecture videos for CS 222A taken between fall 2007 and spring 2015. Some of the
lectures are supplementary, and were not given in the actual class.
This is the required graduate course
at UC Davis Computer Science on Design and Analysis of Efficient Computer Algorithms.
These are lecture videos for CS 122A taken in fall 2010. This is the required undergraduate course
at UC Davis Computer Science on Design and Analysis of Efficient Computer Algorithms.
The webpage for ECS 225 in Winter 2012 is
www.cs.ucdavis.edu/~gusfield/cs225w12
ECS 225 Winter 2012, Graph Theory and Algorithms
The webpage for ECS 120 in Fall 2011 is
www.cs.ucdavis.edu/~gusfield/cs120f11
ECS 120 Fall 2011, Theory of Computation
The webpage for ECS 224 in Fall 2011
www.cs.ucdavis.edu/~gusfield/cs224f11
ECS 224 Fall 2011, Algorithms for Strings
and Computational Biology
ECS 224 Fall 2009
The current (Spring 2008) class webpage .
These are lecture videos for CS 124 mostly taken in 2002 (with editing and some new material in 2014). For the topics covered, they are still surprisingly
current.
Clicking will open a menu for the lectures.
Synopses of the lectures can be found at:
Synopses of Bioinformatics Lecture Videos
Some Recent Publications
For selected recent publications:
recent publications
Some Recent Talks
For powerpoint of some recent talks:
some recent talks
Software developed at UC Davis in my group
The software developed here covers a range of topics in computational biology
and sequence analysis, and often accompanies papers published on the methodologies
behind the software.
Available software
October 2020